package com.cgsd.heyu.presenter.home;


import android.content.Context;

import com.cgsd.heyu.common.CommonConfig;
import com.cgsd.heyu.common.UserModeConfig;
import com.cgsd.heyu.entity.AdContentEntity;
import com.cgsd.heyu.entity.AppUpdateEntity;
import com.cgsd.heyu.entity.BannerEntity;
import com.cgsd.heyu.entity.CashOutAccountEntity;
import com.cgsd.heyu.entity.CashOutEntity;
import com.cgsd.heyu.entity.CashOutProductEntity;
import com.cgsd.heyu.entity.FlowerInfoEntity;
import com.cgsd.heyu.entity.IntegralEntity;
import com.cgsd.heyu.entity.PayEntity;
import com.cgsd.heyu.entity.ReportEntity;
import com.cgsd.heyu.entity.RewardEntity;
import com.cgsd.heyu.entity.TaskEntity;
import com.cgsd.heyu.entity.TeamEntity;
import com.cgsd.heyu.entity.VideoEntity;
import com.cgsd.heyu.entity.VideoRewordResult;
import com.cgsd.heyu.entity.VipEntity;
import com.cgsd.heyu.entity.VipProductEntity;
import com.cgsd.heyu.presenter.BasePresenter;
import com.cgsd.heyu.presenter.BaseView;
import com.cgsd.heyu.ui.home.fragment.TaskAdFragment;

import java.util.List;

/**
 * @author xiaoxing
 * 所有除用户相关
 */
public interface HomeContract {

    /**
     * 获取数据
     */
    interface Presenter extends BasePresenter {
        /**
         * 获取七牛云图片token
         */
        void getQiniuyunImageToken();

        /**
         * 获取今日任务列表
         */
        void getTodayTask();

        /**
         * 获取app配置数据
         * @param sysType 类型
         */
        void getConfigInfo(String sysType);

        /**
         * 用户积分信息
         * @param userId
         */
        void getFlowerInfo(String userId);

        /**
         * 获取banner位
         * @param bannerType
         */
        void getBannerType(String bannerType);
        /**
         * 获取广告
         * @param type
         */
        void getAdContent(String type);

        /**
         * 获取任务奖励
         * @param taskId
         */
        void getTaskReword(String taskId);

        /**
         * 视频列表 广告奖励
         * @param codeId c
         * @param type t
         */
        void getTaskReword(String codeId,int type);

        /**
         * app更新
         */
        void appUpdate();

        /**
         * 获取团队人数
         */
        void getTeamData();

        /**
         * 获取直推会员列表
         */
        void recommendUserList(int page,int pageSize, int recommendType);

        /**
         * 获取视频列表
         * @param page
         * @param pageSize
         */
        void getVideoList(int page,int pageSize);

        /**
         * 视频id
         * @param id
         */
        void statisticsVideoData(String id);

        /**
         * 举报
         * @param entity
         */
        void report(ReportEntity entity);

        /**
         * 获取提现产品列表
         */
        void cashOutProduct();

        /**
         * 绑定账号
         * @param name 账号名称
         * @param account 账号
         */
        void cashOutAccountBind(String name,String account,String type);

        /**
         * 提现账户信息
         */
        void cashOutAccountInfo();

        /**
         * 提现
         * @param payWay 提现类型：1 支付宝；2 微信
         * @param productId 选择提现产品Id
         */
        void cashOut(String productId,String payWay);

        /**
         * 提现记录
         */
        void cashOutRecord(int page);

        /**
         * 获取vip产品列表
         */
        void vipProduct();

        /**
         * 支付宝支付
         * @param orderNo
         */
        void alipay(String orderNo);

        /**
         * 支付宝支付
         * @param orderNo
         */
        void thirdAlipay(String orderNo, Context mContext);

        /**
         * 获取用户信息
         */
        void getUserInfo();

        /**
         * 积分流水
         * @param page
         * @param operationType 不传查全部;1 查收入；2 查支出
         */
        void getIntegralRecord(int page,String operationType);

        /**
         * 看视频奖励获取
         * @param videoId 视频id
         */
        void videoReward(String videoId);

    }

    /**
     * 登陆（view更新）
     * {@link com.cgsd.heyu.ui.home.MainActivity}
     */
    interface MainView extends BaseView<Presenter> {
        /**
         * 配置成功
         * @param sysType
         */
        void setConfig(String sysType);
        /**
         * 设置App审计配置
         * @param appUpdateEntity 升级数据
         */
        void setAppUpdate(AppUpdateEntity appUpdateEntity);
    }

    /**
     * 草根时代分类界面
     * {@link TaskAdFragment}
     */
    interface ClassifyView extends BaseView<Presenter>{
        /**
         * 今日任务列表
         * @param taskList
         */
        void setTaskList(List<TaskEntity> taskList);
        /**
         * 获取任务奖励成功
         */
        void taskRewordSuccess(RewardEntity entity);
        /**
         * 是否显示
         */
        void setConfig(String sysType);
    }

    /**
     * 个人中心
     * {@link com.cgsd.heyu.ui.home.fragment.CenterFragment}
     */
    interface CenterView extends BaseView<Presenter> {
        /**
         * 积分信息
         * @param entity
         */
        void setFlowerInfo(FlowerInfoEntity entity);

        /**
         * 设置banner
         * @param entities
         */
        void setBanner(List<BannerEntity> entities);
    }

    /**
     * 奖励弹窗
     * {@link com.cgsd.heyu.widgets.dialog.ShareRewardDialog}
     */
    interface RewordDialogView extends BaseView<Presenter>{
        /**
         * 广告数据
         * @param adContent 广告内容
         * @param type 广告位
         */
        void setAdContent(AdContentEntity adContent,String type);
    }

    /**
     * 我的团队
     * {@link com.cgsd.heyu.ui.info.MyTeamActivity}
     */
    interface MyTeamView extends BaseView<Presenter>{
        /**
         * 团队人数
         * @param entity
         */
        void setTeamData(TeamEntity entity);

        /**
         * 直推vip用户列表
         * @param entity
         */
        void vipList(List<VipEntity> entity);
    }

    /**
     * 视频列表
     * {@link com.cgsd.heyu.ui.home.fragment.TriListFragment}
     */
    interface  VideoView extends BaseView<Presenter>{
        //视频数据返回
        void setVideoData(List<VideoEntity> entities);

        void  taskRewordSuccess(RewardEntity entity);
    }

    /**
     * 举报
     */
    interface VideoPayView extends BaseView<Presenter>{
        //举报成功
        void reportSuccess();
        //观看奖励视频奖励
        void videoReword(VideoRewordResult rewordResult);
    }

    /**
     * 提现界面
     * {@link com.cgsd.heyu.ui.info.CashOutActivity}
     */
    interface CashOutView extends BaseView<Presenter>{
        //提现产品列表
        void cashOutProduct(List<CashOutProductEntity> entities);
        //绑定成功
        void bindSuccess();
        //提现绑定信息
        void cashOutAccountInfo(CashOutAccountEntity entity);
        //申请提现成功
        void cashOutSuccess();
    }

    /**
     * 提现记录
     * {@link com.cgsd.heyu.ui.info.CashOutRecordActivity}
     */
    interface CashOutRecordView extends BaseView<Presenter>{
        //举报成功
        void cashOutList(List<CashOutEntity> entities);
    }

    /**
     * vip页面
     * {@link com.cgsd.heyu.ui.info.VipActivity}
     */
    interface VipView extends BaseView<Presenter>{
        //vip产品列表
        void vipProduct(List<VipProductEntity> entities);
        //支付宝支付数据
        void setAlipayData(PayEntity payEntity);
        //用户数据
        void setUserInfo(UserModeConfig userInfo);
    }

    /**
     * 积分流水记录
     * {@link com.cgsd.heyu.ui.Integral.fragment.IntegralDetailFragment}
     */
    interface IntegralRecordView extends BaseView<Presenter>{
        //积分流水记录
        void setIntegralData(List<IntegralEntity> entities);
    }
}
